#ifndef FITNESS_PERMUTACION_CU
#define FITNESS_PERMUTACION_CU

#include "fitnessPermutacion.cuh"

#include "../utils/global.cuh"

float calcularFitnessPermutacionCPU(int* poblacion, int posicion){
	float fitness = 0;
	float contador = cantGenesEnCromosoma-1;
	for(int i = 0; i < cantGenesEnCromosoma; i++){
	  fitness = fitness + matrizCostos[poblacion[posicion + i]][poblacion[posicion + ((i + 1) % cantGenesEnCromosoma)]];
	  contador--;
	}
	return -fitness;
}

__device__ float calcularFitnessPermutacionGPU(int* poblacion, int posicion){
	float fitness = 0;
	float contador = cantGenesEnCromosomaDevice-1;
	for(int i = 0; i < cantGenesEnCromosomaDevice; i++){
		fitness = fitness + matrizCostosDevice[poblacion[posicion + i]][poblacion[posicion + ((i + 1) % cantGenesEnCromosomaDevice)]];
		contador--;
	}
	return -fitness;
}

#endif
